<?php
/**
 * 通用通知接口demo
 * ====================================================
 * 支付完成后，微信会把相关支付和用户信息发送到商户设定的通知URL，
 * 商户接收回调信息后，根据需要设定相应的处理流程。
 * 
 * 这里举例使用log文件形式记录回调信息。
*/
	include_once("./log_.php");
	include_once("../WxPayPubHelper/WxPayPubHelper.php");

    //使用通用通知接口
	$notify = new Notify_pub();

	//存储微信的回调
	$xml = $GLOBALS['HTTP_RAW_POST_DATA'];	
	$notify->saveData($xml);
	
	//验证签名，并回应微信。
	//对后台通知交互时，如果微信收到商户的应答不是成功或超时，微信认为通知失败，
	//微信会通过一定的策略（如30分钟共8次）定期重新发起通知，
	//尽可能提高通知的成功率，但微信不保证通知最终能成功。
	if($notify->checkSign() == FALSE){
		$notify->setReturnParameter("return_code","FAIL");//返回状态码
		$notify->setReturnParameter("return_msg","签名失败");//返回信息
	}else{
		$notify->setReturnParameter("return_code","SUCCESS");//设置返回码
	}

	$returnXml = $notify->returnXml();
	echo $returnXml;
	
	//==商户根据实际情况设置相应的处理流程，此处仅作举例=======
	
	//以log文件形式记录回调信息
	$log_ = new Log_();
	$log_name="/home/tianshihui/pay/weixin/demo/demo/notify_url.log";//log文件路径
	$log_->log_result($log_name,"【接收到的notify通知】:\n".$xml."\n");

	if($notify->checkSign() == TRUE)
	{
		if ($notify->data["return_code"] == "FAIL") {
			//此处应该更新一下订单状态，商户自行增删操作
			$log_->log_result($log_name,"【通信出错】:\n".$xml."\n");
		}
		elseif($notify->data["result_code"] == "FAIL"){
			//此处应该更新一下订单状态，商户自行增删操作
			$log_->log_result($log_name,"【业务出错】:\n".$xml."\n");
		}
		else{
			//此处应该更新一下订单状态，商户自行增删操作
			$log_->log_result($log_name,"【支付成功】:\n".$xml."\n");
		}
		
		//商户自行增加处理流程,
		//例如：更新订单状态
		//例如：数据库操作
		//例如：推送支付完成信息
		
//-----------------自定义部分 --------------------------------------
		// 获取返回参数

		$mesg['ucode'] = $notify->data["out_trade_no"];		//商户订单号
		$mesg['y_amount'] = $notify->data["total_fee"];	// 总金额
		$mesg['y_bank'] = $notify->data["bank_type"];		// 银行类型
		$mesg['y_merchantaccount'] = $notify->data["appid"];	// 商户在微信的appid 
		$mesg['y_orderid'] = $notify->data["transaction_id"];	// 微信支付的订单号
		
		$mesg['status'] = 1; // 订单状态更新
		
	//	$ticket_id = $_GET['ticket_id'];
  
                $con = mysql_connect("localhost","root","3113110");
  
                if (!$con){
                    die('Could not connect: ' . mysql_error());
                }
                  
                mysql_select_db("tianshihui", $con);
  
                mysql_query("set character set 'utf8'");

 		$ssql = sprintf("SELECT * FROM tbl_ticket where ucode='%s'",$mesg['ucode']); 

                $result = mysql_query($ssql);

                $row = mysql_fetch_assoc($result);
		// 更新对应记录为已支付 
		$sql = sprintf("UPDATE tbl_ticket SET status=1,type=2,y_amount='%s',y_bank='%s',y_merchantaccount='%s',y_orderid='%s'  WHERE ucode= '%s'",$mesg['y_amount'],$mesg['y_bank'],$mesg['y_merchantaccount'],$mesg['y_orderid'],$mesg['ucode']);

		mysql_query($sql);

                //$ucode = $row['ucode']; 
                mysql_close($con);

                $content = sprintf("购票成功 : 订单编号%s",$mesg['ucode']);

                $phone = $row['phone'];

                $phone_url = sprintf("http://192.168.1.42/?ct=index&fun=apisend_sendsms&content=%s&type=1&mobile=%s",urlencode($content),$phone);
                //      print_r($phone_url);
		$log_->log_result($log_name,"【电话地址】:\n".$phone_url."\n");

                $curl = curl_init();
                //print_r($phone_url);  
                curl_setopt($curl, CURLOPT_URL, $phone_url);
                curl_setopt($curl, CURLOPT_HEADER, true);
                curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
                curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
                curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
                curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); 
                curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); 
                curl_setopt($curl, CURLOPT_TIMEOUT, 30);
                curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
                $re = curl_exec($curl);
                curl_close($curl);

		$log_->log_result($log_name,"【电话发送结果】:\n".$re."\n");

//-----------------自定义部分 --------------------------------------

	}
?>
